package com.ruoyi.bluebera.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 交易扫描日志对象 biz_tx_scan_logs
 * 
 * @author ruoyi
 * @date 2025-07-29
 */
public class BizTxScanLogs extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    private Long id;

    /** 订单ID */
    @Excel(name = "订单ID")
    private Long orderId;

    /** 支付地址 */
    @Excel(name = "支付地址")
    private String paymentAddress;

    /** 交易哈希 */
    @Excel(name = "交易哈希")
    private String txHash;

    /** 币种符号 */
    @Excel(name = "币种符号")
    private String tokenSymbol;

    /** 网络类型 */
    @Excel(name = "网络类型")
    private String network;

    /** 数量 */
    @Excel(name = "数量")
    private BigDecimal amount;

    /** 兑换的bluebera数量 */
    @Excel(name = "兑换的bluebera数量")
    private BigDecimal blueberaAmount;

    /** 兑换bluebera汇率 */
    @Excel(name = "兑换bluebera汇率")
    private BigDecimal rateToBluebera;

    /** 入块时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "入块时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date blockTime;

    /** 链上状态 */
    @Excel(name = "链上状态")
    private String scanStatus;

    /** 区块高度 */
    @Excel(name = "区块高度")
    private Long blockNumber;

    /** gas使用量 */
    @Excel(name = "gas使用量")
    private Long gasUsed;

    /** 确认数 */
    @Excel(name = "确认数")
    private Long confirmations;

    /** 扫描错误信息 */
    @Excel(name = "扫描错误信息")
    private String errorMsg;

    /** 扫描时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "扫描时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date scannedAt;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setOrderId(Long orderId) 
    {
        this.orderId = orderId;
    }

    public Long getOrderId() 
    {
        return orderId;
    }

    public void setPaymentAddress(String paymentAddress) 
    {
        this.paymentAddress = paymentAddress;
    }

    public String getPaymentAddress() 
    {
        return paymentAddress;
    }

    public void setTxHash(String txHash) 
    {
        this.txHash = txHash;
    }

    public String getTxHash() 
    {
        return txHash;
    }

    public void setTokenSymbol(String tokenSymbol) 
    {
        this.tokenSymbol = tokenSymbol;
    }

    public String getTokenSymbol() 
    {
        return tokenSymbol;
    }

    public void setNetwork(String network) 
    {
        this.network = network;
    }

    public String getNetwork() 
    {
        return network;
    }

    public void setAmount(BigDecimal amount) 
    {
        this.amount = amount;
    }

    public BigDecimal getAmount() 
    {
        return amount;
    }

    public void setBlueberaAmount(BigDecimal blueberaAmount) 
    {
        this.blueberaAmount = blueberaAmount;
    }

    public BigDecimal getBlueberaAmount() 
    {
        return blueberaAmount;
    }

    public void setRateToBluebera(BigDecimal rateToBluebera) 
    {
        this.rateToBluebera = rateToBluebera;
    }

    public BigDecimal getRateToBluebera() 
    {
        return rateToBluebera;
    }

    public void setBlockTime(Date blockTime) 
    {
        this.blockTime = blockTime;
    }

    public Date getBlockTime() 
    {
        return blockTime;
    }

    public void setScanStatus(String scanStatus) 
    {
        this.scanStatus = scanStatus;
    }

    public String getScanStatus() 
    {
        return scanStatus;
    }

    public void setBlockNumber(Long blockNumber) 
    {
        this.blockNumber = blockNumber;
    }

    public Long getBlockNumber() 
    {
        return blockNumber;
    }

    public void setGasUsed(Long gasUsed) 
    {
        this.gasUsed = gasUsed;
    }

    public Long getGasUsed() 
    {
        return gasUsed;
    }

    public void setConfirmations(Long confirmations) 
    {
        this.confirmations = confirmations;
    }

    public Long getConfirmations() 
    {
        return confirmations;
    }

    public void setErrorMsg(String errorMsg) 
    {
        this.errorMsg = errorMsg;
    }

    public String getErrorMsg() 
    {
        return errorMsg;
    }

    public void setScannedAt(Date scannedAt) 
    {
        this.scannedAt = scannedAt;
    }

    public Date getScannedAt() 
    {
        return scannedAt;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("orderId", getOrderId())
            .append("paymentAddress", getPaymentAddress())
            .append("txHash", getTxHash())
            .append("tokenSymbol", getTokenSymbol())
            .append("network", getNetwork())
            .append("amount", getAmount())
            .append("blueberaAmount", getBlueberaAmount())
            .append("rateToBluebera", getRateToBluebera())
            .append("blockTime", getBlockTime())
            .append("scanStatus", getScanStatus())
            .append("blockNumber", getBlockNumber())
            .append("gasUsed", getGasUsed())
            .append("confirmations", getConfirmations())
            .append("errorMsg", getErrorMsg())
            .append("scannedAt", getScannedAt())
            .toString();
    }
}
